home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / VBASIC / T2WIN-32.ZIP / _MATRIX.FRM (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1997-01-01  |  23.5 KB  |  690 lines

  1. VERSION 4.00
  2. Begin VB.Form frmMatrix 
  3.    BorderStyle     =   4  'Fixed ToolWindow
  4.    Caption         =   "Matrix"
  5.    ClientHeight    =   4845
  6.    ClientLeft      =   1890
  7.    ClientTop       =   3270
  8.    ClientWidth     =   7485
  9.    Height          =   5250
  10.    Left            =   1830
  11.    MaxButton       =   0   'False
  12.    MDIChild        =   -1  'True
  13.    ScaleHeight     =   4845
  14.    ScaleWidth      =   7485
  15.    ShowInTaskbar   =   0   'False
  16.    Top             =   2925
  17.    Width           =   7605
  18.    Begin VB.TextBox txt_Result 
  19.       BackColor       =   &H00C0C0C0&
  20.       BorderStyle     =   0  'None
  21.       Height          =   4110
  22.       Left            =   105
  23.       Locked          =   -1  'True
  24.       MultiLine       =   -1  'True
  25.       ScrollBars      =   2  'Vertical
  26.       TabIndex        =   0
  27.       Top             =   630
  28.       Width           =   7260
  29.    End
  30.    Begin Threed.SSPanel SSPanel1 
  31.       Align           =   1  'Align Top
  32.       Height          =   480
  33.       Left            =   0
  34.       TabIndex        =   1
  35.       Top             =   0
  36.       Width           =   7485
  37.       _Version        =   65536
  38.       _ExtentX        =   13203
  39.       _ExtentY        =   847
  40.       _StockProps     =   15
  41.       ForeColor       =   -2147483640
  42.       BackColor       =   12632256
  43.       Begin VB.ComboBox cmb_Function 
  44.          Height          =   315
  45.          Left            =   1365
  46.          TabIndex        =   2
  47.          Top             =   90
  48.          Width           =   4785
  49.       End
  50.       Begin Threed.SSCommand cmdNP 
  51.          Height          =   300
  52.          Index           =   1
  53.          Left            =   7140
  54.          TabIndex        =   6
  55.          Top             =   90
  56.          Width           =   255
  57.          _Version        =   65536
  58.          _ExtentX        =   450
  59.          _ExtentY        =   529
  60.          _StockProps     =   78
  61.          Caption         =   ">"
  62.          BevelWidth      =   1
  63.          Font3D          =   3
  64.          RoundedCorners  =   0   'False
  65.          Outline         =   0   'False
  66.       End
  67.       Begin Threed.SSCommand cmdNP 
  68.          Height          =   300
  69.          Index           =   0
  70.          Left            =   6300
  71.          TabIndex        =   5
  72.          Top             =   90
  73.          Width           =   255
  74.          _Version        =   65536
  75.          _ExtentX        =   450
  76.          _ExtentY        =   529
  77.          _StockProps     =   78
  78.          Caption         =   "<"
  79.          BevelWidth      =   1
  80.          Font3D          =   3
  81.          RoundedCorners  =   0   'False
  82.          Outline         =   0   'False
  83.       End
  84.       Begin VB.Label Label2 
  85.          Caption         =   "&Select a function"
  86.          Height          =   255
  87.          Left            =   90
  88.          TabIndex        =   4
  89.          Top             =   120
  90.          Width           =   1275
  91.       End
  92.       Begin Threed.SSCommand SSCommand1 
  93.          Default         =   -1  'True
  94.          Height          =   300
  95.          Left            =   6615
  96.          TabIndex        =   3
  97.          Top             =   90
  98.          Width           =   465
  99.          _Version        =   65536
  100.          _ExtentX        =   820
  101.          _ExtentY        =   529
  102.          _StockProps     =   78
  103.          Caption         =   "&Go"
  104.          BevelWidth      =   1
  105.          RoundedCorners  =   0   'False
  106.          Outline         =   0   'False
  107.       End
  108.    End
  109. Attribute VB_Name = "frmMatrix"
  110. Attribute VB_Creatable = False
  111. Attribute VB_Exposed = False
  112. Option Explicit
  113. Option Base 1
  114. Private Const Iteration = 250
  115. Dim IsLoaded         As Integer
  116. Dim TimerStartOk     As Integer
  117. Dim TimerCloseOk     As Integer
  118. Dim TimerHandle      As Integer
  119. Dim TimerValue       As Long
  120. Private Sub cmdNP_Click(Index As Integer)
  121.    Call sub_NextPrev(cmb_Function, Index)
  122. End Sub
  123. Private Sub cmb_Function_Click()
  124.    If (IsLoaded = False) Then Exit Sub
  125.    Call cDisableFI(mdiT2W.Picture1)
  126.    txt_Result = ""
  127.    DoEvents
  128.    Select Case cmb_Function.ListIndex
  129.       Case 0
  130.          Call TestMatrixAdd
  131.       Case 1
  132.          Call TestMatrixSub
  133.       Case 2
  134.          Call TestMatrixMul
  135.       Case 3
  136.          Call TestMatrixCopy
  137.       Case 4
  138.          Call TestMatrixCompare
  139.       Case 5
  140.          Call TestMatrixFill
  141.       Case 6
  142.          Call TestMatrixDet
  143.       Case 7
  144.          Call TestMatrixInv
  145.       Case 8
  146.          Call TestMatrixTranspose
  147.       Case 9
  148.          Call TestMatrixMinorCofactor
  149.       Case 10
  150.          Call TestMatrixSymToeplitz
  151.    End Select
  152.    DoEvents
  153.    Call cEnableFI(mdiT2W.Picture1)
  154. End Sub
  155. Private Sub Form_Activate()
  156.    mdiT2W.Label2.Caption = cInsertBlocks(mdiT2W.Label2.Tag, "" & Iteration)
  157. End Sub
  158. Private Sub Form_Load()
  159.    IsLoaded = False
  160.    Show
  161.    Call sub_Load_Combo(cmb_Function, T2WDirInst + "_matrix.t2w")
  162.    IsLoaded = True
  163. End Sub
  164. Private Sub SSCommand1_Click()
  165.    Call cmb_Function_Click
  166. End Sub
  167. Private Sub TestMatrixAdd()
  168.    Dim lngResult        As Long
  169.    Dim strResult        As String
  170.    Dim strDisplay       As String
  171.    Dim i                As Integer
  172.    Dim j                As Integer
  173.    Dim TmpA             As String
  174.    Dim TmpB             As String
  175.    Dim TmpC             As String
  176.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  177.    ReDim ArrayB(1 To 3, 1 To 3) As Double
  178.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  179.    Randomize Timer
  180.    For i = 1 To 3
  181.       For j = 1 To 3
  182.          ArrayA(i, j) = Int(RandI * Rnd(1))
  183.          ArrayB(i, j) = Int(RandI * Rnd(1))
  184.          ArrayC(i, j) = 0
  185.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  186.          TmpB = TmpB + Format$(ArrayB(i, j), "00000  ")
  187.       Next j
  188.       TmpA = TmpA + vbCrLf
  189.       TmpB = TmpB + vbCrLf
  190.    Next i
  191.    Call cMatrixAdd(3, ArrayA(), ArrayB(), ArrayC())
  192.    For i = 1 To 3
  193.       For j = 1 To 3
  194.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  195.       Next j
  196.       TmpC = TmpC + vbCrLf
  197.    Next i
  198.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  199.    strDisplay = strDisplay & "Second array (B) is " & vbCrLf & vbCrLf & TmpB & vbCrLf
  200.    strDisplay = strDisplay & "(A) + (B) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  201.    txt_Result = strDisplay
  202.    'time the function
  203.    TimerHandle = cTimerOpen()
  204.    TimerStartOk = cTimerStart(TimerHandle)
  205.    For i = 1 To Iteration
  206.       Call cMatrixAdd(3, ArrayA(), ArrayB(), ArrayC())
  207.    Next i
  208.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  209.    TimerCloseOk = cTimerClose(TimerHandle)
  210. End Sub
  211. Private Sub TestMatrixSub()
  212.    Dim lngResult        As Long
  213.    Dim strResult        As String
  214.    Dim strDisplay       As String
  215.    Dim i                As Integer
  216.    Dim j                As Integer
  217.    Dim TmpA             As String
  218.    Dim TmpB             As String
  219.    Dim TmpC             As String
  220.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  221.    ReDim ArrayB(1 To 3, 1 To 3) As Double
  222.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  223.    Randomize Timer
  224.    For i = 1 To 3
  225.       For j = 1 To 3
  226.          ArrayA(i, j) = Int(RandI * Rnd(1))
  227.          ArrayB(i, j) = Int(RandI * Rnd(1))
  228.          ArrayC(i, j) = 0
  229.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  230.          TmpB = TmpB + Format$(ArrayB(i, j), "00000  ")
  231.       Next j
  232.       TmpA = TmpA + vbCrLf
  233.       TmpB = TmpB + vbCrLf
  234.    Next i
  235.    Call cMatrixSub(3, ArrayA(), ArrayB(), ArrayC())
  236.    For i = 1 To 3
  237.       For j = 1 To 3
  238.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  239.       Next j
  240.       TmpC = TmpC + vbCrLf
  241.    Next i
  242.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  243.    strDisplay = strDisplay & "Second array (B) is " & vbCrLf & vbCrLf & TmpB & vbCrLf
  244.    strDisplay = strDisplay & "(A) - (B) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  245.    txt_Result = strDisplay
  246.    'time the function
  247.    TimerHandle = cTimerOpen()
  248.    TimerStartOk = cTimerStart(TimerHandle)
  249.    For i = 1 To Iteration
  250.       Call cMatrixSub(3, ArrayA(), ArrayB(), ArrayC())
  251.    Next i
  252.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  253.    TimerCloseOk = cTimerClose(TimerHandle)
  254. End Sub
  255. Private Sub TestMatrixMul()
  256.    Dim lngResult        As Long
  257.    Dim strResult        As String
  258.    Dim strDisplay       As String
  259.    Dim i                As Integer
  260.    Dim j                As Integer
  261.    Dim TmpA             As String
  262.    Dim TmpB             As String
  263.    Dim TmpC             As String
  264.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  265.    ReDim ArrayB(1 To 3, 1 To 3) As Double
  266.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  267.    Randomize Timer
  268.    For i = 1 To 3
  269.       For j = 1 To 3
  270.          ArrayA(i, j) = Int(RandI * Rnd(1))
  271.          ArrayB(i, j) = Int(RandI * Rnd(1))
  272.          ArrayC(i, j) = 0
  273.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  274.          TmpB = TmpB + Format$(ArrayB(i, j), "00000  ")
  275.       Next j
  276.       TmpA = TmpA + vbCrLf
  277.       TmpB = TmpB + vbCrLf
  278.    Next i
  279.    Call cMatrixMul(3, ArrayA(), ArrayB(), ArrayC())
  280.    For i = 1 To 3
  281.       For j = 1 To 3
  282.          TmpC = TmpC + Format$(ArrayC(i, j), "0000000000  ")
  283.       Next j
  284.       TmpC = TmpC + vbCrLf
  285.    Next i
  286.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  287.    strDisplay = strDisplay & "Second array (B) is " & vbCrLf & vbCrLf & TmpB & vbCrLf
  288.    strDisplay = strDisplay & "(A) * (B) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  289.    txt_Result = strDisplay
  290.    'time the function
  291.    TimerHandle = cTimerOpen()
  292.    TimerStartOk = cTimerStart(TimerHandle)
  293.    For i = 1 To Iteration
  294.       Call cMatrixMul(3, ArrayA(), ArrayB(), ArrayC())
  295.    Next i
  296.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  297.    TimerCloseOk = cTimerClose(TimerHandle)
  298. End Sub
  299. Private Sub TestMatrixCopy()
  300.    Dim lngResult        As Long
  301.    Dim strResult        As String
  302.    Dim strDisplay       As String
  303.    Dim i                As Integer
  304.    Dim j                As Integer
  305.    Dim TmpA             As String
  306.    Dim TmpC             As String
  307.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  308.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  309.    Randomize Timer
  310.    For i = 1 To 3
  311.       For j = 1 To 3
  312.          ArrayA(i, j) = Int(RandI * Rnd(1))
  313.          ArrayC(i, j) = 0
  314.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  315.       Next j
  316.       TmpA = TmpA + vbCrLf
  317.    Next i
  318.    Call cMatrixCopy(3, ArrayA(), ArrayC())
  319.    For i = 1 To 3
  320.       For j = 1 To 3
  321.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  322.       Next j
  323.       TmpC = TmpC + vbCrLf
  324.    Next i
  325.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  326.    strDisplay = strDisplay & "(A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  327.    txt_Result = strDisplay
  328.    'time the function
  329.    TimerHandle = cTimerOpen()
  330.    TimerStartOk = cTimerStart(TimerHandle)
  331.    For i = 1 To Iteration
  332.       Call cMatrixCopy(3, ArrayA(), ArrayC())
  333.    Next i
  334.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  335.    TimerCloseOk = cTimerClose(TimerHandle)
  336. End Sub
  337. Private Sub TestMatrixCompare()
  338.    Dim intResult        As Integer
  339.    Dim strResult        As String
  340.    Dim strDisplay       As String
  341.    Dim i                As Integer
  342.    Dim j                As Integer
  343.    Dim TmpA             As String
  344.    Dim TmpC             As String
  345.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  346.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  347.    Randomize Timer
  348.    For i = 1 To 3
  349.       For j = 1 To 3
  350.          ArrayA(i, j) = Int(RandI * Rnd(1))
  351.          ArrayC(i, j) = Int(RandI * Rnd(1))
  352.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  353.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  354.       Next j
  355.       TmpA = TmpA + vbCrLf
  356.       TmpC = TmpC + vbCrLf
  357.    Next i
  358.    intResult = cMatrixCompare(3, ArrayA(), ArrayC())
  359.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  360.    strDisplay = strDisplay & "Second array (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  361.    strDisplay = strDisplay & "Compare of (A) = (C) is " & intResult & vbCrLf & vbCrLf
  362.    TmpA = ""
  363.    TmpC = ""
  364.    For i = 1 To 3
  365.       For j = 1 To 3
  366.          ArrayA(i, j) = Int(RandI * Rnd(1))
  367.          ArrayC(i, j) = ArrayA(i, j)
  368.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  369.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  370.       Next j
  371.       TmpA = TmpA + vbCrLf
  372.       TmpC = TmpC + vbCrLf
  373.    Next i
  374.    intResult = cMatrixCompare(3, ArrayA(), ArrayC())
  375.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  376.    strDisplay = strDisplay & "Second array (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  377.    strDisplay = strDisplay & "Compare of (A) = (C) is " & intResult & vbCrLf & vbCrLf
  378.    txt_Result = strDisplay
  379.    'time the function
  380.    TimerHandle = cTimerOpen()
  381.    TimerStartOk = cTimerStart(TimerHandle)
  382.    For i = 1 To Iteration
  383.       intResult = cMatrixCompare(3, ArrayA(), ArrayC())
  384.    Next i
  385.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  386.    TimerCloseOk = cTimerClose(TimerHandle)
  387. End Sub
  388. Private Sub TestMatrixFill()
  389.    Dim intResult        As Integer
  390.    Dim strResult        As String
  391.    Dim strDisplay       As String
  392.    Dim i                As Integer
  393.    Dim j                As Integer
  394.    Dim TmpA             As String
  395.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  396.    Randomize Timer
  397.    intResult = cMatrixFill(3, ArrayA(), MATRIX_ZERO)
  398.    For i = 1 To 3
  399.       For j = 1 To 3
  400.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  401.       Next j
  402.       TmpA = TmpA + vbCrLf
  403.    Next i
  404.    strDisplay = strDisplay & "Matrix ZERO is " & vbCrLf & vbCrLf & TmpA & vbCrLf & vbCrLf
  405.    TmpA = ""
  406.    intResult = cMatrixFill(3, ArrayA(), MATRIX_UNIT)
  407.    For i = 1 To 3
  408.       For j = 1 To 3
  409.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  410.       Next j
  411.       TmpA = TmpA + vbCrLf
  412.    Next i
  413.    strDisplay = strDisplay & "Matrix UNIT is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  414.    txt_Result = strDisplay
  415.    'time the function
  416.    TimerHandle = cTimerOpen()
  417.    TimerStartOk = cTimerStart(TimerHandle)
  418.    For i = 1 To Iteration
  419.       Call cMatrixFill(3, ArrayA(), MATRIX_ZERO)
  420.    Next i
  421.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  422.    TimerCloseOk = cTimerClose(TimerHandle)
  423. End Sub
  424. Private Sub TestMatrixDet()
  425.    Dim intResult        As Integer
  426.    Dim strResult        As String
  427.    Dim strDisplay       As String
  428.    Dim i                As Integer
  429.    Dim j                As Integer
  430.    Dim det              As Double
  431.    Dim nSize            As Integer
  432.    Dim TmpA             As String
  433.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  434.    Randomize Timer
  435.    nSize = 3
  436.    ReDim ArrayA(1 To nSize, 1 To nSize) As Double
  437.    Randomize Timer
  438.    For i = 1 To nSize
  439.       For j = 1 To nSize
  440.          ArrayA(i, j) = Int(RandI * Rnd(1))
  441.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  442.       Next j
  443.       TmpA = TmpA + vbCrLf
  444.    Next i
  445.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  446.    strDisplay = strDisplay & "Det of (A) = " & cMatrixDet(nSize, ArrayA()) & vbCrLf & vbCrLf
  447.    txt_Result = strDisplay
  448.    'time the function
  449.    TimerHandle = cTimerOpen()
  450.    TimerStartOk = cTimerStart(TimerHandle)
  451.    For i = 1 To Iteration
  452.       det = cMatrixDet(nSize, ArrayA())
  453.    Next i
  454.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  455.    TimerCloseOk = cTimerClose(TimerHandle)
  456. End Sub
  457. Private Sub TestMatrixInv()
  458.    Dim intResult        As Integer
  459.    Dim strResult        As String
  460.    Dim strDisplay       As String
  461.    Dim i                As Integer
  462.    Dim j                As Integer
  463.    Dim TmpA             As String
  464.    Dim TmpC             As String
  465.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  466.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  467.    Randomize Timer
  468.    intResult = cMatrixFill(3, ArrayA(), MATRIX_ZERO)
  469.    intResult = cMatrixFill(3, ArrayC(), MATRIX_UNIT)
  470.    For i = 1 To 3
  471.       For j = 1 To 3
  472.          ArrayA(i, j) = Int(RandI * Rnd(1))
  473.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  474.       Next j
  475.       TmpA = TmpA + vbCrLf
  476.    Next i
  477.    intResult = cMatrixInv(3, ArrayA(), ArrayC())
  478.    If (intResult = True) Then
  479.       For i = 1 To 3
  480.          For j = 1 To 3
  481.             TmpC = TmpC + Format$(ArrayC(i, j), "0.0000000  ")
  482.          Next j
  483.          TmpC = TmpC + vbCrLf
  484.       Next i
  485.    Else
  486.       TmpC = " 'can be inverted'"
  487.    End If
  488.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  489.    strDisplay = strDisplay & "Inv of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  490.    TmpA = ""
  491.    TmpC = ""
  492.    intResult = cMatrixFill(3, ArrayA(), MATRIX_ZERO)
  493.    intResult = cMatrixFill(3, ArrayC(), MATRIX_ZERO)
  494.    For i = 1 To 3
  495.       For j = 1 To 3
  496.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  497.       Next j
  498.       TmpA = TmpA + vbCrLf
  499.    Next i
  500.    intResult = cMatrixInv(3, ArrayA(), ArrayC())
  501.    If (intResult = True) Then
  502.       For i = 1 To 3
  503.          For j = 1 To 3
  504.             TmpC = TmpC + Format$(ArrayC(i, j), "0.0000000  ")
  505.          Next j
  506.          TmpC = TmpC + vbCrLf
  507.       Next i
  508.    Else
  509.       TmpC = " 'can be inverted'" + vbCrLf
  510.    End If
  511.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  512.    strDisplay = strDisplay & "Inv of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  513.    TmpA = ""
  514.    TmpC = ""
  515.    intResult = cMatrixFill(3, ArrayA(), MATRIX_UNIT)
  516.    intResult = cMatrixFill(3, ArrayC(), MATRIX_ZERO)
  517.    For i = 1 To 3
  518.       For j = 1 To 3
  519.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  520.       Next j
  521.       TmpA = TmpA + vbCrLf
  522.    Next i
  523.    intResult = cMatrixInv(3, ArrayA(), ArrayC())
  524.    If (intResult = True) Then
  525.       For i = 1 To 3
  526.          For j = 1 To 3
  527.             TmpC = TmpC + Format$(ArrayC(i, j), "0.0000000  ")
  528.          Next j
  529.          TmpC = TmpC + vbCrLf
  530.       Next i
  531.    Else
  532.       TmpC = " 'can be inverted'" + vbCrLf
  533.    End If
  534.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  535.    strDisplay = strDisplay & "Inv of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  536.    txt_Result = strDisplay
  537.    'time the function
  538.    For i = 1 To 3
  539.       For j = 1 To 3
  540.          ArrayA(i, j) = Int(RandI * Rnd(1))
  541.       Next j
  542.    Next i
  543.    TimerHandle = cTimerOpen()
  544.    TimerStartOk = cTimerStart(TimerHandle)
  545.    For i = 1 To Iteration
  546.       Call cMatrixInv(3, ArrayA(), ArrayC())
  547.    Next i
  548.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  549.    TimerCloseOk = cTimerClose(TimerHandle)
  550. End Sub
  551. Private Sub TestMatrixTranspose()
  552.    Dim intResult        As Integer
  553.    Dim strResult        As String
  554.    Dim strDisplay       As String
  555.    Dim i                As Integer
  556.    Dim j                As Integer
  557.    Dim TmpA             As String
  558.    Dim TmpC             As String
  559.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  560.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  561.    Randomize Timer
  562.    For i = 1 To 3
  563.       For j = 1 To 3
  564.          ArrayA(i, j) = Int(RandI * Rnd(1))
  565.          ArrayC(i, j) = 0
  566.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  567.       Next j
  568.       TmpA = TmpA + vbCrLf
  569.    Next i
  570.    Call cMatrixTranspose(3, ArrayA(), ArrayC())
  571.    For i = 1 To 3
  572.       For j = 1 To 3
  573.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  574.       Next j
  575.       TmpC = TmpC + vbCrLf
  576.    Next i
  577.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  578.    strDisplay = strDisplay & "Transpose of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  579.    TmpA = ""
  580.    TmpC = ""
  581.    Call cMatrixFill(3, ArrayA(), MATRIX_UNIT)
  582.    For i = 1 To 3
  583.       For j = 1 To 3
  584.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  585.       Next j
  586.       TmpA = TmpA + vbCrLf
  587.    Next i
  588.    Call cMatrixTranspose(3, ArrayA(), ArrayC())
  589.    For i = 1 To 3
  590.       For j = 1 To 3
  591.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  592.       Next j
  593.       TmpC = TmpC + vbCrLf
  594.    Next i
  595.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  596.    strDisplay = strDisplay & "Transpose of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  597.    txt_Result = strDisplay
  598.    'time the function
  599.    For i = 1 To 3
  600.       For j = 1 To 3
  601.          ArrayA(i, j) = Int(RandI * Rnd(1))
  602.       Next j
  603.    Next i
  604.    TimerHandle = cTimerOpen()
  605.    TimerStartOk = cTimerStart(TimerHandle)
  606.    For i = 1 To Iteration
  607.       Call cMatrixTranspose(3, ArrayA(), ArrayC())
  608.    Next i
  609.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  610.    TimerCloseOk = cTimerClose(TimerHandle)
  611. End Sub
  612. Private Sub TestMatrixMinorCofactor()
  613.    Dim intResult        As Integer
  614.    Dim strResult        As String
  615.    Dim strDisplay       As String
  616.    Dim i                As Integer
  617.    Dim j                As Integer
  618.    Dim cofact           As Double
  619.    Dim nSize            As Integer
  620.    Dim TmpA             As String
  621.    nSize = 3
  622.    ReDim ArrayA(1 To nSize, 1 To nSize) As Double
  623.    Randomize Timer
  624.    For i = 1 To nSize
  625.       For j = 1 To nSize
  626.          ArrayA(i, j) = Int(RandI * Rnd(1))
  627.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  628.       Next j
  629.       TmpA = TmpA + vbCrLf
  630.    Next i
  631.    strDisplay = strDisplay & "Array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  632.    For i = 1 To 3
  633.       For j = 1 To 3
  634.          strDisplay = strDisplay & "CoFactor and Minor of A(" & i & "," & j & ") are " & cMatrixCoFactor(nSize, ArrayA(), i, j) & " and " & cMatrixMinor(nSize, ArrayA(), i, j) & vbCrLf
  635.       Next j
  636.       strDisplay = strDisplay & vbCrLf
  637.    Next i
  638.    txt_Result = strDisplay
  639.    'time the function
  640.    TimerHandle = cTimerOpen()
  641.    TimerStartOk = cTimerStart(TimerHandle)
  642.    For i = 1 To Iteration
  643.       cofact = cMatrixCoFactor(nSize, ArrayA(), 1, 1)
  644.    Next i
  645.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  646.    TimerCloseOk = cTimerClose(TimerHandle)
  647. End Sub
  648. Private Sub TestMatrixSymToeplitz()
  649.    Dim intResult        As Integer
  650.    Dim strResult        As String
  651.    Dim strDisplay       As String
  652.    Dim i                As Integer
  653.    Dim j                As Integer
  654.    Dim TmpA             As String
  655.    Dim TmpC             As String
  656.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  657.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  658.    Randomize Timer
  659.    For i = 1 To 1
  660.       For j = 1 To 3
  661.          ArrayA(i, j) = Int(RandI * Rnd(1))
  662.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  663.       Next j
  664.       TmpA = TmpA + vbCrLf
  665.    Next i
  666.    intResult = cMatrixSymToeplitz(3, ArrayA(), ArrayC())
  667.    For i = 1 To 3
  668.       For j = 1 To 3
  669.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  670.       Next j
  671.       TmpC = TmpC + vbCrLf
  672.    Next i
  673.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  674.    strDisplay = strDisplay & "Symmetrical Toeplitz of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  675.    txt_Result = strDisplay
  676.    'time the function
  677.    For i = 1 To 1
  678.       For j = 1 To 3
  679.          ArrayA(i, j) = Int(RandI * Rnd(1))
  680.       Next j
  681.    Next i
  682.    TimerHandle = cTimerOpen()
  683.    TimerStartOk = cTimerStart(TimerHandle)
  684.    For i = 1 To Iteration
  685.       Call cMatrixSymToeplitz(3, ArrayA(), ArrayC())
  686.    Next i
  687.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  688.    TimerCloseOk = cTimerClose(TimerHandle)
  689. End Sub
  690.